FL07 - PBXGetVolInfo ÉOÉãÅ[

(98 îN 3 åé 24 ì˙)

Q: PBXGetVolInfoSync Ç®ÇÊÇ— PBXGetVolInfoAsync ÇåƒÇ—èoÇ∑ÇΩÇflÇÃÉOÉãÅ[ÇÕÇ«ÇÃÇÊǧǻLJÇÃÇ≈ǵÇÂǧǩÅB

A: ïKóvÇ»ÉOÉãÅ[ÇÕéüÇÃí ÇËÇ≈Ç∑ÅB

#if GENERATINGCFM

#include <Traps.h>#include <FSM.h>
// kFSMXGetVolInfo ÇÕ Universal Interfaces 3.0.1 Ç‹Ç≈ì±ì¸Ç≥ÇÍǃǢǻǢÅB

#if UNIVERSAL_INTERFACES_VERSION < 0x0301
    enum {
        kFSMXGetVolInfo = 0x0012
    };
#endif

// PBXGetVolInfo ÉãÅ[É`ÉìÇà ProcInfoType ÇÃílÇíËã`ÅB

enum {
    uppXGetVolInfoProcInfo = kRegisterBased |
        RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) |
        REGISTER_RESULT_LOCATION(kRegisterD0) |
        REGISTER_ROUTINE_PARAMETER(1, kRegisterD0, kFourByteCode) |
        REGISTER_ROUTINE_PARAMETER(2, kRegisterD1, kFourByteCode) |
        REGISTER_ROUTINE_PARAMETER(3, kRegisterA0, SIZE_CODE(sizeof(XVolumeParamPtr)))
};

// ìØä˙ÉãÅ[É`ÉìópÇÃÉOÉãÅ[

extern pascal OSErr PBXGetVolInfoSync(XVolumeParamPtr
paramBlock)
{
    return CallOSTrapUniversalProc(GetOSTrapAddress(_FSDispatch), uppXGetVolInfoProcInfo,
        kFSMXGetVolInfo,            // DO ÉåÉWÉXÉ^: ÉZÉåÉNÉ^
        _FSDispatch,                // D1 ÉåÉWÉXÉ^: ÉgÉâÉbÉvÉèÅ[Éh
        paramBlock                  // AO ÉåÉWÉXÉ^: paramBlock
    );
}

// îÒìØä˙ÉãÅ[É`ÉìópÇÃÉOÉãÅ[

extern pascal OSErr PBXGetVolInfoAsync(XVolumeParamPtr paramBlock)
{
    return CallOSTrapUniversalProc(GetOSTrapAddress(_FSDispatch),
uppXGetVolInfoProcInfo,
        kFSMXGetVolInfo,            // D0 ÉåÉWÉXÉ^: ÉZÉåÉNÉ^
        _FSDispatch | kAsyncMask,   // D1 ÉåÉWÉXÉ^: ÉgÉâÉbÉvÉèÅ[Éh
        paramBlock                  // A0 ÉåÉWÉXÉ^: paramBlock
    );
}

#endif

-- Mark Cookson
devsupport@apple.com


[ Technical Q&A's : Operating System Services : Files : FL07 ]